﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.Web.Mvc;

namespace TumbaloSoft.Models
{
    public class Inmueble
    {
        private int idInmueble;
        private string direccion;
        private string estado;
        private int nroPisos;
        private int nroBanhos;
        private int nroDormitorios;
        private int antiguedad;
        private double valorMercado; //Precio de Venta
        private double areaTotal;
        private double areaConstruida;
        private string informacion;
        private string estaHabitado;
        private TipoInmueble tipoInmueble;
        private Distrito distrito;
        private List<TituloDePropiedad> listaTitulosDePropiedad;
        private Moneda moneda;
	   private Persona duenho;
	   private string imagen;


	   public Persona prDuenho
	   {
		   get { return duenho; }
		   set { duenho = value; }
	   }
	   public string prImagen
	   {
		   get { return imagen; }
		   set { imagen = value; }
	   }
        public Moneda prMoneda
        {
            get { return moneda; }
            set { moneda = value; }
        }

        [StringLength(255, ErrorMessage = "El no puede tener mas de 255 caracteres")]
        public string prInformacion
        {
            get { return informacion; }
            set { informacion = value; }
        }
        public TipoInmueble prTipoInmueble
        {
            get { return tipoInmueble; }
            set { tipoInmueble = value; }
        }

        public string prEstaHabitado
        {
            get { return estaHabitado; }
            set { estaHabitado = value; }
        }

        public List<TituloDePropiedad> prListaTitulosDePropiedad
        {
            get { return listaTitulosDePropiedad; }
            set { listaTitulosDePropiedad = value; }
        }

        public Distrito prDistrito
        {
            get { return distrito; }
            set { distrito = value; }
        }
        [Required(ErrorMessage = "Se requiere ingresar la direccion del Inmueble")]
        public string prDireccion
        {
            get { return direccion; }
            set { direccion = value; }
        }
        public string prEstado
        {
            get { return estado; }
            set { estado = value; }
        }  

        public int prNroPisos
        {
            get { return nroPisos; }
            set { nroPisos = value; }
        }
        [Required(ErrorMessage = "Se requiere saber el numero de baños, 0 es una opcion")]
        [Range(0, 1000, ErrorMessage = "El valor debe estar entre 0 y 1000")]
        public int prNroBanhos
        {
            get { return nroBanhos; }
            set { nroBanhos = value; }
        }
	   [Required(ErrorMessage = "Se requiere saber el numero de dormitorios, 0 es una opcion")]
        [Range(0,1000,ErrorMessage="El valor debe estar entre 0 y 1000")]
        public int prNroDormitorios
        {
            get { return nroDormitorios; }
            set { nroDormitorios = value; }
        }
        public int prAntiguedad
        {
            get { return antiguedad; }
            set { antiguedad = value; }
        }
        [Required(ErrorMessage = "Se requiere un precio")]
        [Range(Double.Epsilon,Double.MaxValue,ErrorMessage="El valor debe ser un real positivo")]
        public double prValorMercado
        {
            get { return valorMercado; }
            set { valorMercado = value; }
        }
        [Required(ErrorMessage = "Se requiere el area")]
        [Range(Double.Epsilon, Double.MaxValue, ErrorMessage = "El valor debe ser un real positivo")]
        public double prAreaTotal
        {
            get { return areaTotal; }
            set { areaTotal = value; }
        }
        public double prAreaConstruida
        {
            get { return areaConstruida; }
            set { areaConstruida = value; }
        }
        [Required(ErrorMessage = "Se requiere ingresar el codigo de inmueble")]
        public int prIdInmueble
        {
            get { return idInmueble; }
            set { idInmueble = value; }
        }
        //falta inmueblexpropietario<< no falta! esto se cambio por titulo de propiedad ya que eso de inmueblexpropietario es de base de datos 
        //venta
        
    }
}